﻿#include "qmykomintenti.h"
#include "qpriemnicavnes.h"
#include "qpriemnicakorekcija.h"
#include "qispratnicivnes.h"
#include "qispratnicikorekcija.h"
#include "qizleznifakturivnes.h"
#include "qizleznifakturikorekcija.h"
#include "qpovratnicavnes.h"
#include "qpovratnicakorekcija.h"
#include "qprofakturavnes.h"
#include "qprofakturakorekcija.h"
#include "qkasavnes.h"
#include "qkasakorekcija.h"
#include "qfakturivnes.h"
#include "qfakturikorekcija.h"
#include "qizjavavnes.h"
#include "qizjavakorekcija.h"
#include "qnalogvnes.h"
#include "qnalogkorekcija.h"
#include "qartiklivnes.h"
#include "qartiklikorekcija.h"
#include "qnarackivnes.h"
#include "qnarackikorekcija.h"
#include "qnarackiWizard.h"
#include "qkalkulacijavnes.h"
#include "qkalkulacijakorekcija.h"
#include "qpltmvnes.h"
#include "qpltmkorekcija.h"
#include "qsmetkivnes.h"
#include "qsmetkikorekcija.h"
#include "qprodpovratnicavnes.h"
#include "qprodpovratnicakorekcija.h"
#include "qprodnivelacijavnes.h"
#include "qprodnivelacijakorekcija.h"
#include "qprodsmetkavnes.h"
#include "qprodsmetkakorekcija.h"
#include "qizvodvnes.h"
#include "qizvodkorekcija.h"

QMyKomintenti::QMyKomintenti(QWidget *parent)
	: QMyBaseWidget(parent)
	,komintentiVnes(0)
	,komintentiKorekcija(0)
	,komintentiLista(0)
{
	ui.setupUi(this);
	pressF4();
}

QMyKomintenti::~QMyKomintenti()
{

}

void QMyKomintenti::pressF2()
{
	QString selText = komintentiLista ? komintentiLista->getLine() : "";
    closeAllForm();
	komintentiVnes = showMyWidget<QKomintentiVnes>(komintentiVnes); 
	connect(komintentiVnes,SIGNAL(succesfulEntryData()),this,SLOT(succesfulEntryData()));
	connect(komintentiVnes,SIGNAL(closeW()),this,SLOT(closeW()));
    komintentiVnes->setSLine(selText);
}
void QMyKomintenti::pressF3()
{
	QString selText = komintentiLista ? komintentiLista->getSelectedText() : "";
	if (selText.isEmpty())
	{
		return;
	}
	closeAllForm();
	komintentiKorekcija = showMyWidget<QKomintentiKorekcija>(komintentiKorekcija); 
	connect(komintentiKorekcija,SIGNAL(succesfulEntryData()),this,SLOT(succesfulEntryData()));
	connect(komintentiKorekcija,SIGNAL(closeW()),this,SLOT(closeW()));
	komintentiKorekcija->showData(selText);
}
void QMyKomintenti::pressF4()
{
    closeAllForm();
	komintentiLista = showMyWidget<QKomintentiLista>(komintentiLista);
	komintentiLista->setSearchStr(m_searchStr);
	komintentiLista->setRow(m_row);
	connect(komintentiLista,SIGNAL(sKomintentToPriemnica(QString&, QString&)),this,SLOT(retKomintentToPriemnica(QString&, QString&)), Qt::DirectConnection);
	connect(komintentiLista,SIGNAL(closeW()),this,SLOT(closeWLista()));
    connect(komintentiLista,SIGNAL(procF2()),this,SLOT(procF2()));
    connect(komintentiLista,SIGNAL(procF3()),this,SLOT(procF3()));
    connect(komintentiLista,SIGNAL(procDel()),this,SLOT(procDel()));
}

void QMyKomintenti::procF2()
{
    pressF2();
}
void QMyKomintenti::procF3()
{
    pressF3();
}
void QMyKomintenti::refresh()
{

}
void QMyKomintenti::procDel()
{

}
void QMyKomintenti::closeW()
{
	pressF4();
}
void QMyKomintenti::closeWLista()
{
	pressEscape();
}

void QMyKomintenti::pressEscape()
{
	raise();
	setFocus();
	emit signCloseMyWidget();
}
void QMyKomintenti::closeAllForm()
{
	komintentiKorekcija = deleteMyWidget<QKomintentiKorekcija>(komintentiKorekcija);
	komintentiVnes = deleteMyWidget<QKomintentiVnes>(komintentiVnes);
	if (komintentiLista)
	{
		m_row = komintentiLista->getRow();
		m_searchStr = komintentiLista->getSearchStr();
	}
	komintentiLista = deleteMyWidget<QKomintentiLista>(komintentiLista);
}

void QMyKomintenti::succesfulEntryData()
{
	pressF4();
}

void QMyKomintenti::retKomintentToPriemnica(QString& text, QString& textName)
{

	QWidget *sour = getSourceWidget();


	if (qobject_cast<QIzvodVnes*>(sour))
	{
		QIzvodVnes *dest = qobject_cast<QIzvodVnes*>(sour);
		dest->setKomintent(text, textName);
		emit eupdateNanigator(dest->getCategoryWidget(), this);
		dest->setFocusLine2();
	}
	if (qobject_cast<QIzvodKorekcija*>(sour))
	{
		QIzvodKorekcija *dest = qobject_cast<QIzvodKorekcija*>(sour);
		dest->setKomintent(text, textName);
		emit eupdateNanigator(dest->getCategoryWidget(), this);
		dest->setFocusLine2();
	}

	if (qobject_cast<QSmetkiVnes*>(sour))
	{
		QSmetkiVnes *dest = qobject_cast<QSmetkiVnes*>(sour);
		dest->setKomintent(text, textName);
		emit eupdateNanigator(dest->getCategoryWidget(), this);
		dest->setFocusLine();
	}

	if (qobject_cast<QSmetkiKorekcija*>(sour))
	{
		QSmetkiKorekcija *dest = qobject_cast<QSmetkiKorekcija*>(sour);
		dest->setKomintent(text, textName);
		emit eupdateNanigator(dest->getCategoryWidget(), this);
		dest->setFocusLine();
	}

	if (qobject_cast<QPLTMVnes*>(sour))
	{
		QPLTMVnes *dest = qobject_cast<QPLTMVnes*>(sour);
		dest->setKomintent(text, textName);
		emit eupdateNanigator(dest->getCategoryWidget(), this);
		dest->setFocusLine();
	}

	if (qobject_cast<QPLTMKorekcija*>(sour))
	{
		QPLTMKorekcija *dest = qobject_cast<QPLTMKorekcija*>(sour);
		dest->setKomintent(text, textName);
		emit eupdateNanigator(dest->getCategoryWidget(), this);
		dest->setFocusLine();
	}

	if (qobject_cast<QProdPovratnicaVnes*>(sour))
	{
		QProdPovratnicaVnes *dest = qobject_cast<QProdPovratnicaVnes*>(sour);
		dest->setKomintent(text, textName);
		emit eupdateNanigator(dest->getCategoryWidget(), this);
		dest->setFocusLine();
	}

	if (qobject_cast<QProdPovratnicaKorekcija*>(sour))
	{
		QProdPovratnicaKorekcija *dest = qobject_cast<QProdPovratnicaKorekcija*>(sour);
		dest->setKomintent(text, textName);
		emit eupdateNanigator(dest->getCategoryWidget(), this);
		dest->setFocusLine();
	}

	if (qobject_cast<QProdNivelacijaVnes*>(sour))
	{
		QProdNivelacijaVnes *dest = qobject_cast<QProdNivelacijaVnes*>(sour);
		dest->setKomintent(text, textName);
		emit eupdateNanigator(dest->getCategoryWidget(), this);
		dest->setFocusLine();
	}

	if (qobject_cast<QProdNivelacijaKorekcija*>(sour))
	{
		QProdNivelacijaKorekcija *dest = qobject_cast<QProdNivelacijaKorekcija*>(sour);
		dest->setKomintent(text, textName);
		emit eupdateNanigator(dest->getCategoryWidget(), this);
		dest->setFocusLine();
	}

	if (qobject_cast<QProdSmetkaVnes*>(sour))
	{
		QProdSmetkaVnes *dest = qobject_cast<QProdSmetkaVnes*>(sour);
		dest->setKomintent(text, textName);
		emit eupdateNanigator(dest->getCategoryWidget(), this);
		dest->setFocusLine();
	}

	if (qobject_cast<QProdSmetkaKorekcija*>(sour))
	{
		QProdSmetkaKorekcija *dest = qobject_cast<QProdSmetkaKorekcija*>(sour);
		dest->setKomintent(text, textName);
		emit eupdateNanigator(dest->getCategoryWidget(), this);
		dest->setFocusLine();
	}

	if (qobject_cast<QKalkulacijaVnes*>(sour))
	{
		QKalkulacijaVnes *dest = qobject_cast<QKalkulacijaVnes*>(sour);
		dest->setKomintent(text, textName);
		emit eupdateNanigator(dest->getCategoryWidget(), this);
		dest->setFocusLine();
	}

	if (qobject_cast<QKalkulacijaKorekcija*>(sour))
	{
		QKalkulacijaKorekcija *dest = qobject_cast<QKalkulacijaKorekcija*>(sour);
		dest->setKomintent(text, textName);
		emit eupdateNanigator(dest->getCategoryWidget(), this);
		dest->setFocusLine();
	}

	if (qobject_cast<QNarackiVnes*>(sour))
	{
		QNarackiVnes *dest = qobject_cast<QNarackiVnes*>(sour);
		dest->setKomintent(text, textName);
		emit eupdateNanigator(dest->getCategoryWidget(), this);
		dest->setFocusLine();
	}
	if (qobject_cast<QNarackiKorekcija*>(sour))
	{
		QNarackiKorekcija *dest = qobject_cast<QNarackiKorekcija*>(sour);
		dest->setKomintent(text, textName);
		emit eupdateNanigator(dest->getCategoryWidget(), this);
		dest->setFocusLine();
	}
    if (qobject_cast<QNarackiWizard*>(sour))
    {
        QNarackiWizard *dest = qobject_cast<QNarackiWizard*>(sour);
        dest->setKomintent(text, textName);
        emit eupdateNanigator(dest->getCategoryWidget(), this);
        dest->setFocusLine();
    }

	if (qobject_cast<QPriemnicaVnes*>(sour))
	{
		QPriemnicaVnes *dest = qobject_cast<QPriemnicaVnes*>(sour);
		dest->setKomintent(text, textName);
        emit eupdateNanigator(dest->getCategoryWidget(), this);
		dest->setFocusLine();
	}
	if (qobject_cast<QPriemnicaKorekcija*>(sour))
	{
		QPriemnicaKorekcija *dest = qobject_cast<QPriemnicaKorekcija*>(sour);
		dest->setKomintent(text, textName);
        emit eupdateNanigator(dest->getCategoryWidget(), this);
        dest->setFocusLine();
    }

	if (qobject_cast<QIspratniciVnes*>(sour))
	{
		QIspratniciVnes *dest = qobject_cast<QIspratniciVnes*>(sour);
		dest->setKomintent(text, textName);
        emit eupdateNanigator(dest->getCategoryWidget(), this);
		dest->setFocusLine();
    }
	if (qobject_cast<QIspratniciKorekcija*>(sour))
	{
		QIspratniciKorekcija *dest = qobject_cast<QIspratniciKorekcija*>(sour);
		dest->setKomintent(text, textName);
        emit eupdateNanigator(dest->getCategoryWidget(), this);
        dest->setFocusLine();
    }
    if (qobject_cast<QFakturiVnes*>(sour))
    {
        QFakturiVnes *dest = qobject_cast<QFakturiVnes*>(sour);
        dest->setKomintent(text, textName);
        emit eupdateNanigator(dest->getCategoryWidget(), this);
        dest->setFocusLine();
    }
    if (qobject_cast<QFakturiKorekcija*>(sour))
    {
        QFakturiKorekcija *dest = qobject_cast<QFakturiKorekcija*>(sour);
        dest->setKomintent(text, textName);
        emit eupdateNanigator(dest->getCategoryWidget(), this);
        dest->setFocusLine();

    }
	if (qobject_cast<QIzlezniFakturiVnes*>(sour))
	{
		QIzlezniFakturiVnes *dest = qobject_cast<QIzlezniFakturiVnes*>(sour);
		dest->setKomintent(text, textName);
        emit eupdateNanigator(dest->getCategoryWidget(), this);
        dest->setFocusLine();
    }
	if (qobject_cast<QIzlezniFakturiKorekcija*>(sour))
	{
		QIzlezniFakturiKorekcija *dest = qobject_cast<QIzlezniFakturiKorekcija*>(sour);
		dest->setKomintent(text, textName);
        emit eupdateNanigator(dest->getCategoryWidget(), this);
        dest->setFocusLine();
    }
	if (qobject_cast<QPovratnicaVnes*>(sour))
	{
		QPovratnicaVnes *dest = qobject_cast<QPovratnicaVnes*>(sour);
		dest->setKomintent(text, textName);
        emit eupdateNanigator(dest->getCategoryWidget(), this);
        dest->setFocusLine();
    }
	if (qobject_cast<QPovratnicaKorekcija*>(sour))
	{
		QPovratnicaKorekcija *dest = qobject_cast<QPovratnicaKorekcija*>(sour);
		dest->setKomintent(text, textName);
        emit eupdateNanigator(dest->getCategoryWidget(), this);
        dest->setFocusLine();
    }

    if (qobject_cast<QProFakturiVnes*>(sour))
    {
        QProFakturiVnes *dest = qobject_cast<QProFakturiVnes*>(sour);
        dest->setKomintent(text, textName);
        emit eupdateNanigator(dest->getCategoryWidget(), this);
        dest->setFocusLine();
    }
    if (qobject_cast<QProFakturiKorekcija*>(sour))
    {
        QProFakturiKorekcija *dest = qobject_cast<QProFakturiKorekcija*>(sour);
        dest->setKomintent(text, textName);
        emit eupdateNanigator(dest->getCategoryWidget(), this);
        dest->setFocusLine();
    }
    if (qobject_cast<QKasaVnes*>(sour))
    {
        QKasaVnes *dest = qobject_cast<QKasaVnes*>(sour);
        dest->setKomintent(text, textName);
        emit eupdateNanigator(dest->getCategoryWidget(), this);
        dest->setFocusLine();
    }
    if (qobject_cast<QKasaKorekcija*>(sour))
    {
        QKasaKorekcija *dest = qobject_cast<QKasaKorekcija*>(sour);
        dest->setKomintent(text, textName);
        emit eupdateNanigator(dest->getCategoryWidget(), this);
        dest->setFocusLine();
    }

	if (qobject_cast<QIzjavaVnes*>(sour))
	{
		QIzjavaVnes *dest = qobject_cast<QIzjavaVnes*>(sour);
		dest->setKomintent(text, textName);
		emit eupdateNanigator(dest->getCategoryWidget(), this);
		dest->setFocusLine();
	}
	if (qobject_cast<QIzjavaKorekcija*>(sour))
	{
		QIzjavaKorekcija *dest = qobject_cast<QIzjavaKorekcija*>(sour);
		dest->setKomintent(text, textName);
		emit eupdateNanigator(dest->getCategoryWidget(), this);
		dest->setFocusLine();
	}
	if (qobject_cast<QNalogVnes*>(sour))
	{
		QNalogVnes *dest = qobject_cast<QNalogVnes*>(sour);
		dest->setKomintent(text, textName);
		emit eupdateNanigator(dest->getCategoryWidget(), this);
		dest->setFocusLine();
	}
	if (qobject_cast<QNalogKorekcija*>(sour))
	{
		QNalogKorekcija *dest = qobject_cast<QNalogKorekcija*>(sour);
		dest->setKomintent(text, textName);
		emit eupdateNanigator(dest->getCategoryWidget(), this);
		dest->setFocusLine();
	}
	if (qobject_cast<QArtikliVnes*>(sour))
	{
		QArtikliVnes *dest = qobject_cast<QArtikliVnes*>(sour);
		dest->setKomintent(text, textName);
		emit eupdateNanigator(dest->getCategoryWidget(), this);
		dest->setFocusLine();
	}
	if (qobject_cast<QArtikliKorekcija*>(sour))
	{
		QArtikliKorekcija *dest = qobject_cast<QArtikliKorekcija*>(sour);
		dest->setKomintent(text, textName);
		emit eupdateNanigator(dest->getCategoryWidget(), this);
		dest->setFocusLine();
	}

}

QStandardItemModel* QMyKomintenti::getModel()
{
    QStandardItemModel * modelExt;
    if (komintentiLista)
    {
        modelExt = komintentiLista->model;
    } 
    else
    {
        modelExt = NULL;
    }
    return modelExt;
}


void QMyKomintenti::setInitSearchText(QString text)
{
	if (komintentiLista)
	{
		komintentiLista->setInitText(text);
	} 
}